package com.taotao.springboot2.common.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Objects;

public class SwaggerHandlerInterceptor implements HandlerInterceptor {
    @Value("${spring.profiles.active:dev}")
    private String env;

//    private static final AntPathMatcher swaggerPathMather = new AntPathMatcher();

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        System.out.println(request.getServletPath());
//
//        //获取当前服务器的访问路径：从协议到项目工程名截止
//        String basePath = request.getScheme()
//                + "://"
//                + request.getServerName()
//                + ":"
//                + request.getServerPort()
//                + request.getContextPath()
//                + "/";
//
//        //获取请求方式
//        String method = request.getMethod();
//        //获取通信协议
//        String scheme = request.getScheme();
//        //获取客户端最后一次代理的IP地址
//        String remoteHost = request.getRemoteHost();
//        //获取客户端最后一次代理的IP地址
//        String remoteHost = request.getRemoteAddr();
//        //获取服务端域名
//        String serverName = request.getServerName();
//        //获取端口号
//        int serverPort = request.getServerPort();
//        //获取项目工程名
//        String contextPath = request.getContextPath();
//        //获取资源映射路径：servlet路径
//        String servletPath = request.getServletPath();
//        //获取通信协议版本
//        String protocol = request.getProtocol();
//        //获取访问路径：项目工程名+servlet路径
//        String requestURI = request.getRequestURI();
//        //获取完整请求资源路径
//        StringBuffer requestURL = request.getRequestURL();
//        //获取实际URL中，相对于请求servlet之url路径，后面的路径信息
//        String pathInfo = request.getPathInfo();
//        //获取所有参数键值对的map集合
//        Map parameterMap = request.getParameterMap();
//        //获取所有参数名集合
//        Enumeration parameterNames = request.getParameterNames();
//        //获取某个参数的数组集合：用于获取那种同一个参数同时有多个值的情况
//        String[] parameterValues = request.getParameterValues("car");
//        //获取单个参数car值，若同时有多个值，则默认获取第一个值
//        String car = request.getParameter("car");
//        //获取单个参数name值，若同时有多个值，则默认获取第一个值
//        String name = request.getParameter("name");


        if (Objects.equals("prod", env)) {
            return false;
        }

        return true;
    }
}
